import axios from 'axios'
// 用户信息
import useUserStore from '@/store/modules/user.ts'
// 配置请求
const http = axios.create({
    // 配置请求基础地址
    baseURL:import.meta.env.VITE_APP_BASE_API,
    // 请求超时时长
    timeout:5000,
})

// 请求拦截器
http.interceptors.request.use((config)=> {
    const useStoreUser = useUserStore()
    // 设置请求头
    if(useStoreUser.token) {
        config.headers.token = useStoreUser.token
    }
    return config
})

// 响应拦截器
http.interceptors.response.use((response)=> {
    if(response.status === 200) {
        return Promise.resolve(response.data)
    }else {
        return Promise.reject(response.data)
    }
},(error)=> {
    // 请求失败请求
    let message ='';
    switch (error.status) {
        case 401:
            message ='token过期'
            break;
        case 403:
            message ='无权访问'
            break;
        case 404:
            message ='服务器出现问题'
            break;
        case 500:
            message ='token过期'
            break;
        default:
            message ='网络出现错误'
            break;
    }
    ElMessage({
        type:'error',
        message
    })
    
    return Promise.reject(error)
})


export default http